import Vue from 'vue'
import App from './App.vue'
//引入路由
import router from '@/router';
import store from '@/store'
//定义一个全局组件：在入口文件中注册一次后在任何我组件中都可以使用
import TypeNav from '@/components/TypeNav';
import Pagination from '@/components/Pagination';

//注册全局组件：第一个参数组件名字，第二个参数那个组件
Vue.component("TypeNav",TypeNav);
Vue.component("Pagination",Pagination);

//为了测试引入Mock是什么打印出来看看
import "@/mock/serve";
//引入swiper相关的样式
import "swiper/css/swiper.css";
import Carousel from '@/components/Carousel';
//**************************************************//
// 全部引入（没有必要）
// import ElementUI from 'element-ui';
// import 'element-ui/lib/theme-chalk/index.css';
// Vue.use(ElementUI);
//按需加载
import { Button,Notification,MessageBox} from 'element-ui';
//图片懒加载
import VueLazyload from 'vue-lazyload';
//使用图片懒加载插件：自定义插件【Vue.use】
//Vue.use回调用插件对象install方法，install方法汇注入Vue构造函数
//使用图片懒加载的时候，第二个参数时配置对象
//引入图片模块：json,图片，人对外暴露
// Vue.use(VueLazyload);
import girl from '@/assets/images/1.jpg'
Vue.use(VueLazyload, {
    loading: girl,
  })
//
//注册为全局组件
Vue.component(Button.name,Button)
//注册组件的形式：把elementUI中的组件挂在到Vue.prototype原型对象上
//为什么把组件挂在到原型对象上==全部的组件实例都可以获取到
Vue.prototype.$notify = Notification;
//注册弹框组件
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;
//*****************************************************// 
Vue.component(Carousel.name,Carousel);
//引入所有的请求函数
import * as API from '@/api';
// console.log(API)


import '@/plugins/validate'
//关闭Vue组件开发提示
Vue.config.productionTip = false;
//创建一个Vue类的实例
new Vue ({
    render:h =>h(App),    
    beforeCreate(){
       //配置全局事件总线
       Vue.prototype.$bus = this;
       Vue.prototype.$API = API;
    },
       //注册路由，给组件的身上添加$router与route两个属性
       router,
       //注册一个仓库，给每一个组件身上添加一个$store属性
       store,
    }).$mount('#app')